3f85a7d264d350f6ee07e7b08eb3b531f5e8fceb,elide-core/src/main/java/com/yahoo/elide/security/executors/ActivePermissionExecutor.java,ActivePermissionExecutor,checkUserPermissions,#Class#Class#,191

Before Change


                annotationClass,
                requestScope
        );
        executeExpressions(expressions, annotationClass);
    }

    /**

After Change



        // If the user check has already been evaluated before, return the result directly and save the building cost
        ExpressionResult expressionResult
                = userPermissionCheckCache.get(Triple.of(resourceClass, annotationClass, null));
        if (expressionResult != null) {
            return expressionResult;
        }

        Expressions expressions = expressionBuilder.buildUserCheckAnyExpression(
                resourceClass,
                annotationClass,
                requestScope
        );
        expressionResult = executeExpressions(expressions, annotationClass);

        userPermissionCheckCache.put(Triple.of(resourceClass, annotationClass, null), expressionResult);

        if (expressionResult == PASS) {
            requestScope.getExpressionResultShortCircuit().add(Triple.of(annotationClass, resourceClass, null));
        }

        return expressionResult;
    }

    /**